//Передвижение маркеров
var rendererOptions = {
    draggable: false
  };
  var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);;
  var directionsService = new google.maps.DirectionsService();
  var map;

  var australia = new google.maps.LatLng(51.1657, 10.4515);

function initialize() {    
    var myOptions = {
      zoom: 4,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: australia    
    };
   
    var geocoder = new google.maps.Geocoder();
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    directionsDisplay.setMap(map);

    directionsDisplay.setPanel(document.getElementById("directionsPanel"));

  

/*Calculate route*/
  //расчет маршрута
    //получаем стартовую и конечную точку из кукисов    
    var st = get_cookie('start');
    var en = get_cookie('end');
    //var points = get_cookie('point');
    var points2 = [];
    var points3 = [];
    delete_cookie('start');
    delete_cookie('end');
    //delete_cookie('point');
    
    geocoder.geocode( {'address': '"' + st + '"'}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                //если координаты найдены - записываем в массив
                //добавлям полоску, чтобы было по чем сплитить строку
                points2.push(results[0].geometry.location);   
                //и отправялем в кукисы
                //document.cookie = "arr=" + arr;
                $("#start").val(points2);                  
           } 
     });
     
     geocoder.geocode( {'address': '"' + en + '"'}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                //если координаты найдены - записываем в массив
                //добавлям полоску, чтобы было по чем сплитить строку
                points3.push(results[0].geometry.location);   
                //и отправялем в кукисы
                //document.cookie = "arr=" + arr;
                $("#end").val(points3);                 
           } 
     });    
}

function showRoute() {
    //сплитим входящие данные
    //для того, чтоб получить массив из строки
    var arr = [];
    var waypts = [];
    var start, end;
    start = $("#start").val();     
    end = $('#end').val();
    var points = get_cookie('point');
    delete_cookie('point');
    arr = points.split('|');    
    //передаем в location адреса 
    for (var i = 0; i < arr.length; i++) {
        waypts.push({
          location:arr[i]      
      });
    }    
   //удаляем последний пустой элемент массива,
   //который создается из-за сплита
    waypts.pop();
    //если доп.адреса были указаны - учитываем их   
    if (waypts != null) {
        var request = {
            origin: start,
            destination: end,
            waypoints: waypts,
            optimizeWaypoints: true,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
    } else {
        //иначе игнорим
        var request = {
            origin: start,
            destination: end,
            optimizeWaypoints: true,
            travelMode: google.maps.DirectionsTravelMode.DRIVING    
        };
    }
    
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
}

setTimeout(showRoute, 1000);

function sendCsv() {
    var start = get_cookie('start');
    var end = get_cookie('end');
    var points = get_cookie('point');
    delete_cookie('start');
    delete_cookie('end');
    delete_cookie('point');
    var data = 'points=' + start + points + end;
            $.ajax({
                type: "POST",
                url: "viewmap",
                data: data,                                                   
                success: function(data){ 
                    alert('Points sended into csv');
                    alert(data);
                }
            });
    window.location = '/routes/viewmap';        
}

  function computeTotalDistance(result) {
    var total = 0;
    var myroute = result.routes[0];
    for (i = 0; i < myroute.legs.length; i++) {
      total += myroute.legs[i].distance.value;
    }
    total = total / 1000.
    document.getElementById("total").innerHTML = total + " km";
  }   

function get_cookie ( cookie_name ) {
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
 
  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;

}

function saveCoordinate() {
      //получаем значение полей
      var coordinate = get_cookie('points');
      delete_cookie('points');
      //формируем урл для отправки GETом через AJAX
      /*var url = 'saveroute/coordinate/' + coordinate;
      //отправляем данные на другой action AJAXом
      downloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.length <= 1) {
            document.getElementById("message").innerHTML = "Данные добавлены.";
        }
      }); */
     //var data = 'cordinate=' + coordinate;
     var data = 'coordinate=' + coordinate;
            $.ajax({
                type: "POST",
                url: "saveroute",
                data: data,                                                   
                success: function(data){ 
                    alert('The route is saved');
                }
            });
}

function downloadUrl(url, callback) {
    var request = window.ActiveXObject ?
    new ActiveXObject('Microsoft.XMLHTTP') :
    new XMLHttpRequest;
      
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            request.onreadystatechange = doNothing;
            callback(request.responseText, request.status);
        }
    };
    request.open('GET', url, true);
    request.send(null);
}

function redir(url) {
    lang = window.location.pathname.substr(1, 3);
    window.location.href= '/' + lang + url;
}

function delete_cookie ( cookie_name ) {
  var cookie_date = new Date ( ); 
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function printRoute() { 
var disp_setting="toolbar=no,location=no,directories=no,directions=yes,menubar=no,"; 
    disp_setting+="scrollbars=yes,width=1150, height=600, left=100, top=25"; 
var content_vlue = document.getElementById("directionsPanel").innerHTML; 
var docprint=window.open("","",disp_setting); 
    docprint.document.open(); 
    docprint.document.write('<html><head><title>print route</title>'); 
    docprint.document.write('</head><body onLoad="window.print();window.close()"><center>'); 
    docprint.document.write(content_vlue); 
    docprint.document.write('</center></body></html>'); 
    docprint.document.close(); 
    docprint.focus(); 
} 